//
//  NSDate+Extend.h
//  CoreCategory
//
//  Created by 成林 on 15/4/6.
//  Copyright (c) 2015年 沐汐. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSDate (MJUI)

/// 时间戳 字符串
@property (nonatomic,copy,readonly) NSString *mj_timestampStr;

/// 时间戳装换为指定格式
/// - Parameter formatter: 转换格式 @"yyyy-MM-dd HH:mm:ss zzz"]; aaa 上午/下午
- (NSString *)mj_dateConvertToStringByFormat:(NSString *)formatter;

/// date 转年龄
- (NSInteger)mj_dateConvertToAge;

/// 几天前，几小时前，几分钟前
- (NSString *)mj_compareCurrentTime;

/// 今天，昨天，几天前，2022-3-4
- (NSString *)mj_differenceCurrentTime;

/// 相差多少天
/// - Parameters:
///   - startDate: 开始时间
///   - endDate: 结束时间
+ (NSInteger)mj_differenceDayWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate;

/// 相差时间
/// - Parameters:
///   - startDate: 开始时间
///   - endDate: 结束时间
+ (NSDateComponents *)mj_differenceTimeWithStartDate:(NSDate *)startDate endDate:(NSDate *)endDate;

/// 获取指定日期的星期
- (NSInteger)mj_weekday;

/// 获取指定日期的星期字符串
- (NSString *)mj_weekdayString;

/// 判断是否今天
- (BOOL)mj_isToday;

/// 时间算法
/// - Parameters:
///   - year: 计算年=》加1年：1；减1年：-1
///   - month: month 计算月=》加1月：1；减1月：-1
///   - day: 计算天=》加一周：7；减一周：-7
-(NSDate *)mj_expectDateWithYear:(int)year month:(int)month day:(int)day;

/// 获取一周时间 数组
/// - Parameters:
///   - first: 0
///   - last: 6
+ (NSMutableArray *)getCurrentWeeksWithFirstDiff:(NSInteger)first lastDiff:(NSInteger)last;
@end

NS_ASSUME_NONNULL_END
